#include <unistd.h>
#include <stdio.h>
#include <stdlib.h>
#include <sys/types.h>

int main(int argc, char const *argv[])
{
    int val=100;
    //fork子进程
    pid_t pid=fork();
    if(pid>0)  // 父进程 对val+100  打印 pid val  val地址
    {   //sleep(1);
        val+=100;
        printf("pid:%d val:%d val地址:%p 子进程的pid:%d\n",getpid(),val,&val,pid);
          sleep(1);
    }else if(pid==0)
    {      //  子进程 对val-100  打印 pid val  val地址
        // 观察 val 1 子进程 能否继承 可以继承fork之前的值
        // 2父进程的修改是否影响子进程 反之？ 不影响
        
        val-=100;
        printf("pid:%d val:%d val地址:%p 父进程pid:%d\n",getpid(),val,&val,getppid());
        
    }
    
    // 打印结束进程
    printf("pid:%d 结束\n",getpid());

    return 0;
}
